<script>
    //菜单的动态折叠下拉
    $(function () {
        var controller_name = '<?=request()->segment(2)?>';

        //因为有驼峰大小写控制器的原因，这里要进行匹配
        switch(controller_name){
            case 'goodstype':
                controller_name = 'goods_type';
                break;
            case 'goodsattr':
                controller_name = 'goods_type';
                break;
            case 'authgroup':
                controller_name = 'auth_group';
                break;
            case 'authrule':
                controller_name = 'auth_rule';
                break;
        }

        // var con_id = '#' + controller_name;
        // $(con_id).parent('ul').css('display','block');
        // $(con_id).parent('ul').parent('li').addClass('open');
    })


    //创建socket的实例变量
    let socket = null; //初始化
    let isLogin = false; //判断是否登录服务器，默认是否
    let admin_id = '<?php echo auth("admin")->id();?>'; //登录后的管理员id
    let ping_status;

    connectServer();//链接服务器

    function connectServer() {
        //判断是否已经登录
        if(!admin_id){
            alert('请先登录');
            //跳转到登录页面
            window.location.href='{{ route('admin.login') }}'
        }

        socket = new WebSocket('ws://www.66.com/ws?type=admin');

        socket.onopen = function (evt) {
            let init_data = {
                type:'admin_init',
            }

            sendMessage(socket,init_data);

            //心跳
            ping_status = setInterval(()=>{
                sendMessage(socket,{"type":'ping'});
            },30000)

        }

        socket.onmessage = function (evt) {
            //接收服务器返回的消息
            var getMsg = JSON.parse(evt.data);
            console.log(getMsg);
            // return;

            switch (getMsg.type) {
                // 服务端ping客户端
                case 'ping':
                    socket.send('{"type":"pong"}');
                    break;

                //返回未读文章的数量
                case 'order_count':
                    if(getMsg.num > 99){
                        $('#article_nums').show().html('99');
                        // getMsg.new_count > 0 ? $('#new_count').show().html(getMsg.new_count) : $('#new_count').hide();
                        // getMsg.send_count > 0 ? $('#send_count').show().html(getMsg.send_count) : $('#send_count').hide();
                    }else if(getMsg.num > 0){
                        $('#article_nums').show().html(getMsg.num);
                        // getMsg.new_count > 0 ? $('#new_count').show().html(getMsg.new_count) : $('#new_count').hide();
                        // getMsg.send_count > 0 ? $('#send_count').show().html(getMsg.send_count) : $('#send_count').hide();
                    }
                    break;

                //在线管理员数量
                case 'online_admins':
                    $('.top_admin_nums').html(getMsg.num + ' 位管理员在线');
                    break;
            }
        }

        socket.close = function () {
            isLogin = false;
            console.log('服务器断开');
        }

        socket.onerror = function(e) {
            console.log("出现错误,5秒后重连");
            setTimeout(function () {
                connectServer();
            },5000)

        };
    }

    /**
     * 发送信息
     * @param socketObj
     * @param data
     */
    function sendMessage(socketObj,data) {
        // var readyState = socketObj.readyState;
        socketObj.send(JSON.stringify(data));
    }

</script>
